package com.filldream.sun.core;

import com.filldream.sun.bean.result.BaseResultEntity;
import com.filldream.sun.bean.result.ErrorCode;
import com.filldream.sun.exception.GlobalException;

import java.util.Collection;
import java.util.Map;

/**
 * 判断空工具
 * @author RickSun
 * @reamrk 检测一律抛异常
 */
public class Assert {

    /**
     * 判断文本是否为空或空串
     * @param content
     * @param errorCode
     */
    public static void isEmpty(String content, ErrorCode errorCode){
        if(SunCommon.isBlank(content)){
            throw  new GlobalException(errorCode);
        }
    }

    /**
     * 判断集合是否为空或空集
     * @param list
     * @param errorCode
     */
    public static void isEmpty(Collection list, ErrorCode errorCode){
        if(list == null || list.isEmpty()){
            throw  new GlobalException(errorCode);
        }
    }

    /**
     * 判断Map是否为空或空Map
     * @param map
     * @param errorCode
     */
    public static void isEmpty(Map<?, ?> map, ErrorCode errorCode) {
        if (map == null || map.isEmpty()) {
            throw new GlobalException(errorCode);
        }
    }

    /**
     * 判断数组是否为空
     * @param array
     * @param errorCode
     * @param <T>
     * @return
     */
    public static <T>void isEmpty(T[] array,ErrorCode errorCode) {
        if (array == null || array.length == 0) {
            throw new GlobalException(errorCode);
        }
    }

    /**
     * 判断对象是否空
     * @param obj
     * @param errorCode
     */
    public static void isNull(Object obj, ErrorCode errorCode) {
        if ( obj == null ) {
            throw new GlobalException(errorCode);
        }
    }

    /**
     * 判断返回类是否成功
     * @param resultEntity
     * @param errorCode
     */
    public static void isOk(BaseResultEntity resultEntity, ErrorCode errorCode) {
        if ( resultEntity == null || !resultEntity.isOk() ) {
            throw new GlobalException(errorCode);
        }
    }


}
